package com.yugong.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.yugong.entity.dto.Student;
import com.yugong.entity.vo.request.StudentRequestVO;
import com.yugong.entity.vo.response.StudentListResponseVO;

/**
 * 学生业务逻辑接口
 *
 * @author yugong
 * @date 2024/2/18
 */
public interface StudentService extends IService<Student> {
    /**
     * 根据学生姓名查询学生信息
     *
     * @param pageNum     当前页
     * @param pageSize    当前页的数据个数
     * @param studentName 学生姓名
     * @return 学生信息
     */
    PageInfo<StudentListResponseVO> findStudent(Integer pageNum, Integer pageSize, String studentName);

    /**
     * 删除学生
     *
     * @param studentNo 学号
     * @return 数据库影响行数
     */
    int deleteStudent(String studentNo);

    /**
     * 查询学生个人信息
     *
     * @param studentNo 学号
     * @return 学生个人信息
     */
    StudentListResponseVO studentInfo(String studentNo);

    /**
     * 修改信息
     *
     * @param studentRequestVO 学生请求实体类
     * @return 数据库影响行数
     */
    int updateInfo(StudentRequestVO studentRequestVO);

    /**
     * 学生报名
     *
     * @param studentRequestVO 学生请求实体类
     * @return 数据库影响行数
     */
    int studentJoin(StudentRequestVO studentRequestVO);

    /**
     * 审核学生列表
     *
     * @param pageNum           当前页
     * @param pageSize          当前页数据个数
     * @param orderClassName    班名
     * @param orderClassAdminNo 订单班管理员工号
     * @return 审核学生列表
     */
    PageInfo<StudentListResponseVO> checkStudentPage(Integer pageNum, Integer pageSize, String orderClassName, String orderClassAdminNo);

    /**
     * 审核学生
     *
     * @param studentRequestVO 学生请求实体类
     * @return 响应码
     */
    int checkStudent(StudentRequestVO studentRequestVO);

    /**
     * 学生查看个人评价
     *
     * @param studentNo 学号
     * @return 个人评价
     */
    String evaluateStudent(String studentNo);
}
